package com.rem.log4j;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.junit.Test;

/**
 * @author Rem
 * @date 2023-01-15
 */
public class Log4jTest {
    @Test
    public void testQuick() {
        // 初始化系统配置，不需要配置文件
        BasicConfigurator.configure();
        // 创建日志记录器对象
        Logger logger = Logger.getLogger(this.getClass());
        // 日志记录输出
        logger.info("hello log4j");
        // 日志级别
        // 严重错误，一般会造成系统崩溃和终止运行
        logger.fatal("fatal");
        // 错误信息，但不会影响系统运行
        logger.error("error");
        // 警告信息，可能会发生问题
        logger.warn("warn");
        // 程序运行信息，数据库的连接、网络、IO操作等
        logger.info("info");
        // 调试信息，一般在开发阶段使用，记录程序的变量、参数等
        logger.debug("debug");
        // 追踪信息，记录程序的所有流程信息
        logger.trace("trace");
    }

    @Test
    public void testProperties() {
        Logger logger = Logger.getLogger(this.getClass());
        for (int i = 0; i < 10000; i++) {
            // 日志记录输出
            logger.info("hello log4j");
            // 日志级别
            // 严重错误，一般会造成系统崩溃和终止运行
            logger.fatal("fatal");
            // 错误信息，但不会影响系统运行
            logger.error("error");
            // 警告信息，可能会发生问题
            logger.warn("warn");
            // 程序运行信息，数据库的连接、网络、IO操作等
            logger.info("info");
            // 调试信息，一般在开发阶段使用，记录程序的变量、参数等
            logger.debug("debug");
            // 追踪信息，记录程序的所有流程信息
            logger.trace("trace");
        }
    }

    /**
     * 自定义日志输出
     *
     * @throws Exception
     */
    @Test
    public void testCustomLogger() {
        Logger logger = Logger.getLogger(this.getClass());
        logger.fatal("fatal");
        logger.error("error");
        logger.warn("warn");
        logger.info("info");
        logger.debug("debug");
        logger.trace("trace");

        Logger logger2 = Logger.getLogger(Logger.class);
        logger2.fatal("fatal logger2");
        logger2.error("error logger2");
        logger2.warn("warn logger2");
        logger2.info("info logger2");
        logger2.debug("debug logger2");
        logger2.trace("trace logger2");
    }


}
